package com.huohuo.javabasic.alg;
/**
 * @Description: 斐波拉契--递归
 * @Author: yangw
 * @Method:
 * @Param:
 * @Return:
 * @Expression:
 * @Date: 2019/3/10 22:40
 */
public class FiBoLaQIE {
    public static void main(String[] args) {
        //1 2 3 5 8 13  除了前2个位置，其他位置的数字都是它前面两个数字之和。
       // int c = fiBo( 3 );
      //  System.out.println(c);//2

        int num1 = 1;
        int num2 = 2;
        int n = 4;//第几个位置的数字
        int num3 = 0;
        for (int i =3;i<=n;i++){
            num3  = num1+num2;
            num1 = num2;
            num2 = num3;
            System.out.println("i==="+num3);
        }
        System.out.println(num3);


    }

    /**
     * 通过递归的方式实现
     * @param n
     * @return
     */

    public static int fi(int n){
        if (n == 1|| n ==2){
            return n;
        }
        return fi( n -1 )+fi( n-2 );
    }


    public static int fiBo(int n){
        if (n==0){ return 0; }
        if (n==1){ return 1; }
        int a =  fiBo( n-1 );
        int b = fiBo( n-2 );
        return a+b;
    }



}
